Vehicle control based on localization and road data

ABSTRACT

Systems and methods for determining the location of a vehicle are disclosed. In one embodiment, a method for localizing a vehicle includes driving over a first road segment, identifying by a first localization system a set of candidate road segments, obtaining vertical motion data while driving over the first road segment, comparing the obtained vertical motion data to reference vertical motion data associated with at least one candidate road segment, and identifying, based on the comparison, a location of the vehicle. The use of such localization methods and systems in coordination with various advanced vehicle systems such as, for example, active suspension systems or autonomous driving features, is contemplated.

RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. § 119(e) of U.S.provisional application Ser. No. 62/754,001, filed Nov. 1, 2018, thedisclosure of which is incorporated by reference in its entirety.

BACKGROUND

Advanced vehicle systems, such as, for example, active suspensionsystems, semi-active suspension systems or autonomous or semi-autonomousdriving systems, may rely on highly accurate localization of a vehicle.Current commercially available localization systems, such as, forexample, localization based on global positioning systems (GPS), may notprovide sufficient accuracy or resolution.

SUMMARY

Disclosed herein, inter alia, are various methods and systems fordetermining the location of a vehicle, for example, when traveling on aroad. In one aspect, a method of localizing a vehicle is disclosed thatcomprises: (a) driving over a first road segment; (b) identifying, by afirst localization system (e.g., GPS), a set of candidate road segments;(c) sensing (e.g., by one or more (e.g., by one, two, four)accelerometers) a sequence of vertical motion of one or more (e.g., atleast one, at least two, at least three, at least four, more than four)wheels of the vehicle to obtain vertical motion data while driving overthe first road segment; (d) accessing at least one computer memorystoring reference vertical motion data for at least one candidate roadsegment of the set of candidate road segments; (e) comparing thevertical motion data obtained while driving over the first road segmentto the stored reference vertical motion data for the at least onecandidate road segment; and (f) based at least partially on thecomparison, determining a location of the vehicle. In certainembodiments, determining the location of the vehicle comprisesidentifying, based on the comparison, a first candidate road segment(e.g., a “best-match” road segment) from the set of candidate roadsegments. In certain embodiments, the reference vertical motion data ofthe first candidate road segment may substantially match the verticalmotion data obtained while driving over the first road segment. Incertain embodiments, acceleration of at least two wheels of the vehiclemay be sensed as the vehicle traverses a portion of the first roadsegment. In certain embodiments, the location of the vehicle may bedetermined based at least partially on a wheel base of the vehicleand/or an axle track of the vehicle.

In certain embodiments, determining the location of the vehiclecomprises: determining a plurality of correlation values, wherein eachcorrelation value represents a degree of correlation between thevertical motion data obtained while driving over the first road segmentto the stored reference vertical motion data for a different roadsegment of the set of candidate road segments; determining the highestcorrelation value of the plurality of correlation values; andidentifying a first road segment from the set of candidate roadsegments, wherein the first road segment is associated with the highestcorrelation value.

In certain embodiments, the operating speed of the vehicle may bedetected (e.g., by using a speedometer), and the location of the vehiclemay be determined based, at least partially, on the operating speed ofthe vehicle. In certain embodiments, obtaining vertical motion datacomprises transforming, based at least in part on the detected operatingspeed of the vehicle, the sequence of sensed vertical motion (e.g.,acceleration) from a time domain to a space domain.

In certain embodiments, obtaining vertical motion data comprises:sensing a sequence of vertical accelerations of each of the one or more(e.g., one, two, four) wheels as a function of time; doubly integratingthe sequence of vertical accelerations with respect to time to obtain asequence of vertical positions with respect to time; transforming thesequence of vertical positions from a time domain to a space domain toobtain a transformed sequence of vertical positions; doublydifferentiating the transformed sequence of vertical positions withrespect to space to obtain the vertical motion data (e.g., such that thevertical motion data corresponds to a sequence of vertical accelerationsof each of the one or more wheels as a function of space). In certainembodiments, the reference vertical motion data comprises a referencesequence of vertical accelerations as a function of space (e.g.,vertical accelerations in the space domain). In certain embodiments,following transformation of the sequence of vertical positions from thetime domain to the space domain to obtain a transformed sequence ofvertical positions, applying a low pass filter to the transformedsequence of vertical positions. The cut-off frequency used for the lowpass filter, in certain embodiments, is not greater than a firstthreshold (e.g., wherein the first threshold is 1 cycle/meter, 0.5cycles/meter, 0.1 cycles/meter).

In certain embodiments, obtaining the vertical motion data comprises:sensing a first sequence of vertical motion of a first set of one ormore wheels (e.g., a front wheel, two front wheels); sensing a secondsequence of vertical motion of a second set of one or more wheels (e.g.,a rear wheel, two rear wheels); determining, based on the first sequenceof vertical motion and the second sequence of vertical motion, asequence of road pitches; wherein the vertical motion data isrepresentative of the sequence of road pitches.

In another aspect, a method for localizing a vehicle using a mobilecomputing device is disclosed. The method may comprise: (a) determining,by a first localization system of a mobile computing device (e.g., acell phone, a tablet, a laptop), a first location of a vehicle, whereinthe mobile computing device is removably mounted within a vehicle, andwherein the mobile computing device includes the first localizationsystem (e.g. a GPS), and one or more motion sensors; (b) identifying,based on the first location, a candidate set of road segments; (c)during operation of the vehicle, sensing, via the one or more motionsensors (e.g., an IMU, an accelerometer), sequences of motion of themobile computing device to obtain vertical motion data; (d) accessing atleast one computer memory storing reference vertical motion data (e.g.,a reference road profile) for a plurality of road segments; (e)comparing the obtained vertical motion data to the stored referencevertical motion data; (f) based at least partially on the comparison,identifying a specific road segment of the candidate set of roadsegments. In certain embodiments, the specific road segment that isidentified may be the road segment of the candidate set of road segmentsthat is associated with reference vertical motion data that moststrongly correlates to the vertical motion data obtained duringoperation of the vehicle.

In another aspect, a method for determining a location of a vehicle isdisclosed. The method may comprise: (a) determining, using a firstlocalization system, a first location of a vehicle; (b) determining,using a second localization system, a second location of the vehicle;(c) determining a first weight to assign the first location and a secondweight to assign to the second location; (d) based on the first weightand the second weight, determining a weighted average of the firstlocation and the second location. In certain embodiments, the firstweight and second weight are dynamically determined based at least inpart on an operating condition (e.g., an operating speed) of the vehicleand/or an environmental parameter (e.g., a level of visibility,temperature, precipitation level, a presence of snow or water on theroad, etc.). In certain embodiments, the first localization systemcollects samples at a first sampling rate and the second localizationsystem collects samples at a second sampling rate greater than the firstsampling rate, and wherein: when an operating speed of the vehicle isbelow a threshold speed, the first weight is greater than the secondrate; and when the operating speed of the vehicle exceeds the thresholdspeed, the second weight is greater than the first weight. In anotheraspect, an apparatus is disclosed comprising a first localizationsystem, a second localization system, and a localization controller incommunication with the first and second localization system, wherein thelocalization controller is configured to determine a first weight toassign to a first location that is determined by the first localizationsystem, determine a second weight to assign to a second location that isdetermined by the second localization system; and based on the firstweight and the second weight, determine a weighted average of the firstlocation and the second location.

In another aspect, a method for locating a vehicle is disclosed thatcomprises: determining the first location of a first vehicle;communicating the first location to a second vehicle; determining arelative distance between, or relative position of, the second vehiclewith respect to the first vehicle; determining, based on the firstlocation and at least one of the relative distance and relativeposition, a second location of the second vehicle.

In yet another aspect, a method of controlling an active suspensionsystem, a semi-active suspension system, or component thereof (e.g., anactuator) is disclosed. In certain embodiments, the method comprises:detecting an occurrence of a first end-stop event or near end-stop eventin a first vehicle; recording a location of the first vehicle thatcorresponds to occurrence of the end-stop event or near end-stop eventand storing the location in a non-transitory computer memory; accessing,by a second vehicle, the computer memory; determining that the secondvehicle will traverse the recorded location; adjusting a current lengthof an actuator of an active suspension system of the second vehicleprior to the second vehicle reaching the recorded location. The firstvehicle may be the same vehicle as the second vehicle, or it may be adifferent vehicle from the second vehicle. In certain embodiments, thecurrent length of the actuator may be adjusted such that, when one ormore wheels of the second vehicle traverses the recorded location of theend-stop event or near-end stop event, the second vehicle does notexperience an end-stop event. That is, in certain embodiments, thecurrent length of the actuator of the active suspension system of thesecond vehicle may be decreased such that, after the decrease, anavailable extension of the actuator of the active suspension system ofthe second vehicle exceeds a dimension (e.g., a, a depth) of an obstacle(e.g., a pothole) located at the recorded location. Alternatively, themethod may comprise increasing the current length of the actuator of theactive suspension system of the second vehicle such that, after theincrease, an available compression of the actuator of the activesuspension system of the second vehicle exceeds a dimension (e.g., aheight) of an obstacle (e.g., a bump, an object) located at the recordedlocation.

In yet another aspect, a method of controlling an active suspensionsystem, a semi-active suspension system, or component thereof (e.g., anactuator) is disclosed, comprising: (a) detecting (e.g., by a forwardlooking sensor communicating with a controller) an obstacle (e.g., anextrusion (e.g., a bump), a depression (e.g., a pothole), a foreignobject) in a path of a wheel of a vehicle; (b) determining (e.g.,predicting)(e.g., by the controller) a dimension (e.g. a height, adepth) of the obstacle; (c) comparing (e.g., by the controller) thedimension of the obstacle to an available compression or an availableextension of an actuator of an active suspension system of the vehicle;(d) upon determining that the dimension of the object exceeds theavailable compression or the available extension, adjusting a length ofthe actuator prior to encountering the obstacle. In certain embodiments,(a) comprises detecting an extrusion (e.g., a bump, a foreign object) inthe path of the wheel of the vehicle; (b) comprises determining a heightof the extrusion; (c) comprises comparing the height of the extrusion tothe available compression; and (d) comprises increasing the currentlength of the actuator. In certain embodiments, (d) comprises increasingthe current length of the actuator such that, after the increase, theavailable compression is not less than the height of the extrusion. Incertain embodiments, (a) comprises detecting a depression (e.g., apothole) in the path of the wheel of the vehicle; (b) comprisesdetermining a depth of the depression; (c) comprises comparing the depthof the depression to the available extension; and (d) comprisesdecreasing the current length of the actuator. In certain embodiments,(d) comprises decreasing the current length of the actuator such that,after the decrease, the available extension is not less than the depthof the depression. In any of the aforementioned embodiments, (d) mayoccur before a wheel of the vehicle encounters the obstacle. Alsodisclosed is a system for carrying out the aforementioned methods, thesystem comprising a forward looking sensor, an active suspension systemthat includes an actuator, and a controller in communication with theforward looking sensor and the actuator, wherein the system isconfigured to carry out the disclosed methods. The forward lookingsensor may be, for example, a LIDAR sensor, a RADAR sensor, or a camera.

In certain embodiments, a method for controlling an active suspensionsystem, a semi-active suspension system, or component thereof (e.g., anactuator) is disclosed, the method comprising: (a) accessing (e.g., by acontroller or microprocessor) a three-dimensional map defining locationsof one or more obstacles (e.g., depressions (e.g., potholes), extrusions(e.g., bumps, obstacles)) on a road surface and a dimension of each ofthe one or more obstacles; (b) determining that the vehicle willtraverse a first obstacle of the one or more obstacles; (c) comparing(e.g., by the controller) the dimension of the first obstacle to anavailable compression and/or an available extension of an actuator of anactive suspension system of the vehicle; (d) upon determining that thedimension of the obstacle exceeds the available compression or theavailable extension, adjusting a current length of the actuator. Incertain embodiments, (b) comprises: receiving (e.g., from a user (e.g.,an occupant, an operator)) a destination; planning a route from a firstlocation to the destination; based on the locations of the one or moreobstacles stored in the three-dimensional map, determining that a firstlocation of the first obstacle overlaps with (e.g., is located along)the planned route.

In certain embodiments, a method of operating a vehicle may includetraveling along a segment of a physical road, determining a firstapproximate location of a the vehicle with a first localization system.Then based on the first approximate location, selecting at least twocandidate road segments along which the first vehicle may be traveling.Then receiving previously stored reference profiles for the at least twocandidate road segments. The vehicle may also generate a working profilefrom sensor data collected using on-board sensors while traveling alongthe segment of the physical road. Values of correlations between atleast a parameter in the working profile and a corresponding parameterin each stored reference profile of the at least two candidate roadsegments may then be determined. The highest correlation value fromamong the determined correlation values may be used to determine asecond approximate location of the vehicle.

In certain embodiments, a method of operating a vehicle system based ona location of the vehicle along a road segment may include travelingalong a segment of the physical road with the vehicle, generating aworking profile based on data collected using at least one sensoron-board the vehicle, determining a first approximate location of thevehicle with a first localization system, and based on the firstapproximate location, selecting several candidate road segments. Themethod may further include receiving previously stored referenceprofiles, from a remote data storage facility, for the several candidateroad segments, and the determining a second approximate location of thefirst vehicle based on the degree of correlation between a parameter ofthe working profile and a parameter of each of the several candidateroad segments. The method may further include providing informationrelated to the working profile to the remote data storage facility.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 illustrates a vehicle wheel traversing road surface.

FIG. 2 illustrates the front and rear wheel of a vehicle traversing aroad surface.

FIG. 3 illustrates a road with reference a profile and a workingprofile.

FIG. 4 illustrates a road where the location of a vehicle the road isdetermined by correlating the working profile with reference profile.

FIG. 5 illustrates a particular parameter that defines the road shown inFIGS. 4 and 5

FIG. 6 illustrates an embodiment of a vehicle having a terrain-basedlocalization system.

FIG. 7 illustrates an alternative embodiment of a vehicle having aterrain-based localization system.

FIG. 8 depicts a flow chart of an exemplary method for terrain-basedlocalization.

FIG. 9 depicts a flow chart of an exemplary method for transformingvertical motion data from a time domain to a distance domain.

FIG. 10 depicts a flow chart of an exemplary method for determining roadpitch data.

FIG. 11 depicts a flow chart of an exemplary method for determining roadpitch data.

FIG. 12 illustrates an active suspension system actuator at its neutralposition.

FIG. 13 illustrates an active suspension system actuator at its maximumlength position

FIG. 14 illustrates an active suspension system actuator at its minimumlength position

FIG. 15 illustrates an exemplary vehicle traversing an extrusion in aroad surface.

FIG. 16 illustrates utilizing a particle filter for localization of avehicle.

Drawings are not to scale unless specifically noted.

DETAILED DESCRIPTION

In certain embodiments, information about a road being travelled may beused in the control of various vehicle systems (e.g. active suspension,steering, braking, and/or navigation). Vehicles may be conventionallydriven vehicles and/or partially or fully autonomous vehicles.Alternatively or additionally, the road based information may be usedfor localization by augmenting or replacing satellite-based navigationsystems such as, for example, United States' Global Positioning System(GPS), Russia's GLONASS and the European Union's Galileo.

Inventors have recognized that previously obtained and/or storeddetailed information about road topography and/or certain, for example,surface features, i.e. the road's fingerprint, may be used to moreaccurately locate a vehicle on the road compared to other localizationtechniques.

In some embodiments, this enhanced localization may be achieved bygenerating a new fingerprint of a road while driving and comparing thatnewly generated fingerprint to a database of previously obtainedfingerprints. Therefore, if the location of the previously obtainedfingerprints along a road is known, then the location of the vehiclealong the road may be determined by matching the newly generatedfingerprint with a previously obtained fingerprint.

In certain embodiments, a fingerprint-based localization system mayinclude a processor that is configured to execute a localization programor algorithm. In some embodiments, the processor may be part of acontrol system of a vehicle, such as, for example, part of a computerpermanently mounted inside the vehicle. In other embodiments, theprocessor may be part of a mobile device such as, e.g., a laptop,tablet, or cellphone. In other embodiments, the processor may be part ofa computing device external to the vehicle that is in communication withthe vehicle (e.g., via a network connection such as, for example, awireless Internet connection or a Bluetooth connection). The processormay comprise one or more inputs and may be configured to receive sensordata via the one or more inputs. In various embodiments, sensor data maybe transferred from one or more sensors to the processor throughphysical cables, or such transfer may occur by wireless communication.

Sensor data may include information collected by one or more sensors.The one or more sensors may include instruments that measure detailsabout a road's surface such as for example, LiDAR, radar, acousticranging devices, and/or laser ranging devices. In some embodiments, thesensors may be forward and/or rearward looking. Alternatively,information collected about the road by such sensors may includeinformation about the road surface to the right, left, and/or below acurrent position of the vehicle.

Alternatively or additionally, sensors may include instruments thatcollect information about how the road surface affects variousparameters of a vehicle traversing the road surface. This informationmay be used to determine details about road features based on aparticular set of responses observed in vehicle systems and subsystems.Determining details about a road based on such responses may depend onthe details of, for example, particular dynamics of these systems,vehicle speed, and/or vehicle acceleration. For example, in someembodiments, wheel motion (e.g., vertical wheel motion) (e.g.,acceleration of the wheel or wheel hub, velocity of the wheel or wheelhub, or changes in position of the wheel or wheel hub), forces exertedon the wheels by the road (e.g., forces in the vertical direction),and/or vehicle speed may be used to determine information aboutelevation features of the road surface (e.g., the location and/ordimensions of a bump or valley in the road surface, the difference inelevation between two points in the road surface) or the radius of aparticular turn. The sensor data may be provided to the processorsubstantially in real time (e.g., at a frequency of at least 100 Hz).Based on the received sensor data, the localization program may beconfigured to generate or calculate a working profile, or acharacteristic fresh “fingerprint”, of a road surface just traversed bythe vehicle. The working profile may include one parameter or it mayinclude multiple parameters. The working profile may be in the distancedomain and/or the frequency domain. For example, an exemplary workingprofile of a given section of road may represent changes in elevation(e.g. size of cracks, bumps, potholes, hills, troughs) of the surface ofa road section as a function of distance travelled along that roadsection.

In some embodiments, the working profile may be stored in a localmemory, referred to as a first buffer, that is accessible to theprocessor. In some embodiments, the localization program may beconfigured to maintain a size of the working profile stored in the firstbuffer. The size of the working profile may be fixed or vary duringoperation. The size of the working profile stored in the first buffermay be referred to as a buffer size. For example, if the working profileis in the distance domain, the first buffer size may be set to, e.g., 50meters, 100 meters, 500 meters, one km or two km. However, buffer sizesboth larger and smaller that these sizes are also contemplated as thisdisclosure is not so limited. In the case of a 500 meter first buffersize, the first buffer may store the working profile of the previous 500meters of road traversed by the vehicle. As the vehicle travels down theroad, the working profile stored in the first buffer may be updated by,for example, by adding new data points corresponding to newly traversedsection of road while dropping an equivalent amount of the oldest datain the first buffer, i.e. old data points that correspond to a distancethat exceeds the first buffer size (e.g., in the case of a 500 meterfirst buffer, the oldest working profile data corresponding to distancesexceeding 500 meters will be removed from or deleted from the firstbuffer).

Alternatively or additionally, the localization program may beconfigured to update the working profile and, optionally, store theupdated working profile in the first buffer at defined increments ofdistance. For example, if the defined increment is 10 cm, then a newdata point may generated and added to the working profile and an olddata point deleted from the working profile—thereby updating thepreviously stored working profile—each time the vehicle traverses 10 cmof road section. In this way, a “continuous” fingerprint of the road isgenerated. Such continuous fingerprinting is in contrast tolandmark-based localization methods (i.e., methods that rely onidentification of discrete landmarks), and may offer more accuracyand/or higher availability than landmark-based localization. For a 500meter first buffer size and a defined increment of 10 cm, the firstbuffer will contain 5,000 data points at a given time (given by theproduct of the first buffer size times the defined update increment).

As discussed herein, the working profile generated by the localizationprogram in response to the sensor data may be used to localize (e.g.,determine a location of) the vehicle. Such localization may be achievedby, for example, correlating a portion or all of the working profilestored in the first buffer with one or more reference profiles that werepreviously recorded, stored, and/or updated. In certain embodiments, areference storage device stores a plurality of reference profiles. Invarious embodiments, the reference storage device may include one ormore local storage devices that are accessible to the processor, or thereference storage device may include one or more external or remotestorage devices that are accessible to the processor by, for example, anetwork connection (e.g., the plurality of reference profiles may bestored on the ‘Cloud’). The reference storage device may also includelocation data that provides the respective location at which each of thestored reference profiles was collected. The reference storage devicemay be located at a data storage facility.

In some embodiments, correlation of a working profile, which may bereferred to as a fresh fingerprint, to one or more reference profiles,which may be referred to as a reference fingerprint (and which may be,for example, stored on the cloud), may be achieved by first downloading,from the cloud, one or more selected reference profiles, or portionsthereof, of one or more road segments and storing them in a localmemory, referred to as a second buffer. In various embodiments, thefirst buffer and second buffer may be located in distinct storage units(e.g., RAM, hard drives, etc.) or they may be located in differentportions of the same storage unit. The second buffer may have a secondbuffer size. In certain embodiments, the second buffer size may largerthan the first buffer size. In certain embodiments, the second buffersize may be at least four times larger than the first buffer size. Forexample, in some embodiments the first buffer size may be 500 m, and thesecond buffer size may be at least 2 km.

In some embodiments, the selection of which specific reference profilesare downloaded from the cloud to the second buffer may be determinedbased on an estimate of the location of the vehicle. The estimatedlocation may be obtained using, for example, a previously known locationof the vehicle, using GPS data, using a dead reckoning system, usingother localization techniques such as vision or wireless networkidentification, or by any combination thereof. The localization programmay download the plurality of reference segments of one or morereference profiles that encompass the estimated location and/or are nearthe estimated location.

In certain embodiments, the downloaded plurality of reference segmentsmay consist of consecutive reference segments. However, in otherembodiments, the downloaded plurality of reference segments may includenon-consecutive reference segments. For example, the estimated locationof the vehicle provided by, for example, GPS may correspond to both afirst road inside a tunnel and a second road that runs above the tunnel.In this case, the localization program may be configured to download afirst set of one or more reference profiles corresponding to the firstroad and a second set of one or more reference profiles corresponding tothe second road. By correlating the working profile with a specificreference profile from either the downloaded first set of referenceprofiles or the downloaded second set of reference profiles, thelocalization program may determine whether the vehicle is located on thefirst road or the second road.

In certain embodiments, the second buffer is updated at a rate slowerthan the first buffer. For example, the first buffer may be updatedevery time the car travels 10 cm, while the second buffer may be updatedevery time the car travels 500 m.

In certain embodiments, patterns in the working profile (that may bestored in the first buffer) can be matched to patterns contained in atleast one of the plurality of reference profiles that may be stored inthe second buffer. Various methods of pattern matching, as known in theart, may be utilized including, for example, cross-correlationtechniques. In certain embodiments, cross-correlation (such as, forexample, the cross correlation function implemented in Matlab with thefunction name xcorr) may be used to y determine a plurality ofcorrelation values, wherein each correlation value corresponds to acomputed degree of similarity between (a) the working profile stored inthe first buffer, or a portion thereof and (b) one of the referenceprofiles downloaded and stored in the second buffer, or a portionthereof.

If the largest correlation value of the plurality of correlation values(a) is sufficiently large (e.g., if the largest correlation valueexceeds a first defined threshold) and/or (b) is sufficiently largerthan the second largest correlation value (e.g., if the differencebetween the largest correlation value and the second largest correlationvalue exceeds a second defined threshold), the results may be consideredto be a ‘clear match’ or ‘high probability match.” The first and/orsecond defined threshold may be dynamically set based on the desiredaccuracy of the localization. For example, when a high desired accuracyof localization is specified, the second defined threshold may beincreased relative to situations when a lesser desired accuracy isspecified. The reference profile, or portion thereof, that yields thelargest correlation value may be referred to as the best-fit segment. Inthe case of a clear match or high probability match, the location of thevehicle may be determined based on a known location of the best-fitsegment.

A variety of vehicle functions including, for example, autonomous orsemi-autonomous driving features, may rely on systems and methodscapable of accurate, high resolution (e.g. in some embodiments equal tosub 1-meter resolution), and repeatable localization of the vehiclebeyond that which current commercial localization systems may provide.As an example, conventional GPS-based localization systems generally donot provide sufficient resolution for use in autonomous vehicles.Further, such GPS-based localizations are especially prone to error orfailure in situations where, for example, (a) signal transmission may bepartially blocked due to, for example, tunnels, surrounding buildings,tree cover, mountains, etc. and/or (b) several possible tracks or roadsegments, have overlapping coordinates (e.g., as in the case of anelevated highway running over a surface street, GPS may be unable todistinguish whether the vehicle is located on the elevated highway orthe surface street underneath).

In light of the above, the inventors have recognized that variousdistinguishing environmental characteristics, including surfacecharacteristics, imperfections or discontinuities of a road, roadsurface or other terrain (e.g., elevation changes, slopes, banks,locations of surface extrusions such as, e.g., bumps and/or depressions,and other surface details) may be utilized for localization, e.g., toidentify a location of a vehicle (e.g., a vehicle's position on a road),much like a fingerprint or facial features may be used to identify aperson. Such surface-based localization may include, in someimplementations, detecting a sequence of surface characteristics of aroad surface traversed by a vehicle, followed by matching of thedetected sequence to a sequence of reference surface characteristicsthat is stored in a previously generated reference map. Surface-basedlocalization may offer several advantages, especially when combined withother localization systems (e.g., GPS). First, road surfacecharacteristics are likely to remain unchanged or effectively unchangedfor prolonged periods of time. Second, unlike, for example, visuallandmark identification (which may become increasingly difficult underlow-light or other low-visibility conditions (e.g., due to rain, snow,time of day, etc.)), the detection of surface characteristics is likelyto be unaffected by, for example, low-light or low-visibilityconditions.

It is envisioned that methods disclosed herein may be utilized toaccurately and/or precisely determine a vehicle's location, for example,along a road being travelled by the vehicle, to a high resolution. It isfurther envisioned that, at least partly based on such vehicle locationdata, previously stored information about the road surface ahead of thevehicle may be obtained. Such information may include, for examplewithout limitation, road condition data, road roughness data, and/ordata about the location and/or size of various road surfaceimperfections or discontinuities, such as potholes, expansion joints,manhole covers, and storm grates. Such information about the upcomingroad surface may be provided to and/or used by one or more vehiclesystems such as, for example, active suspension systems, semi-activesuspension systems, braking systems, steering systems and/or autonomousdriving systems to anticipate and mitigate road induced disturbances.

Turning now to the figures, several non-limiting embodiments are nowdescribed in detail. FIG. 1 illustrates a vehicle wheel 10 traversingroad surface 11. Relative vertical positions of the road surface(alternatively referred to as vertical displacement of the road surface)12 may be measured directly (e.g., using a road surface profilometer)or, in some embodiments, approximated indirectly based on displacement13 of a wheel hub 14 as the vehicle traverses the road surface. Thedisplacement of the wheel hub may be determined by, for example,measuring the acceleration of the wheel hub and double integrating thatmeasurement as a function of time. In certain embodiments, compressionof the tire 15 may be disregarded, such that the vertical displacementof the road surface 12 may be assumed to be equal to the verticaldisplacement 13 of the wheel hub. Alternatively, the verticaldisplacement of the road surface 12 may be determined more accuratelyby, for example, accounting for such compression or deflection of thetire 15. Tire deflection or compression may be measured directly, or adynamic model may be used that incorporates such deflection orcompression effects. The model may, for example, take into account theforces applied on the hub, the geometry of the tire, the tire'sconstruction, the tire's inflation pressure, other factors such as tireenveloping, or any combination thereof.

FIG. 2 illustrates vehicle including a rear wheel 10 and a front wheel16. As explained elsewhere, vertical displacements in the road surface12, 17 traversed by each wheel may be measured directly or may beapproximated based on the measurement of, for example, accelerations ofthe respective hubs of the rear wheel 10 and front wheel 16. Once theroad surface displacements 12, 17 are determined, the pitch angle, pitchrate, or pitch acceleration may be determined. “Pitch” as used hereinmay refer to vehicle body pitch, road pitch (i.e., the slope of animaginary straight line that connects a first point, at which a reartire of the vehicle is in contact with the road surface, to a secondpoint, at which a front tire of the vehicle is in contact with the roadsurface), or wheel-hub pitch (i.e., the slope of an imaginary straightline that connects the center of a front wheel hub of the vehicle to thecenter of a back wheel hub of the vehicle). As would be recognized byone of ordinary skill, pitch may be mathematically related to roadsurface features by accounting for the length of the wheel base of thevehicle and, optionally, additional factors (such as, for example,suspension characteristics). In some embodiments, the pitch angle, pitchrate, or pitch acceleration may be included as a parameter in thereference and/or working profiles of a road. Pitch rate may refer tochange in pitch angle with respect to time or with respect to distance.Similarly, pitch acceleration may refer to change in pitch rate withrespect to time or with respect to distance.

In certain embodiments, the information used to generate the pluralityof reference profiles may be collected by, for example, crowd sourcingof multiple vehicles, and/or by use of specialized vehicles usingspecial purpose road surface measurement equipment. Each referenceprofile may include one or more parameters. These parameters mayinclude, for example, vertical displacement of a road surface; verticalacceleration experienced by or expected by one or more wheels of avehicle traversing the road surface; the pitch angle, pitch rate, orpitch acceleration experienced by or expected by a vehicle traversingthe road surface; or the road pitch angle as a function of the length ofthe wheel base of the vehicle.

The working profile may similarly include, for example, vertical roaddisplacement data, wheel acceleration data, and/or pitch data at thevehicle's wheel base. By correlating measured and or computedinformation in the reference profiles with similar information in theworking profile, the location of a vehicle collecting and/or generatingthe working profile may be determined.

FIG. 3 illustrates a road with reference profile AA and working profileBB. By correlating one or more parameters in BB with similar parametersin AA, the location of vehicle 31 that has just traversed a portion ofroad segment BB may be determined.

FIG. 4 illustrates a road 30, wherein a location of a vehicle 32 on theroad 30 is determined by correlating the working profile CC withreference profile DD. The vehicle 32 may represent the same car or truckas vehicle 31 at a later time, or may represent a totally differentvehicle.

FIG. 5 illustrates a particular parameter that defines the road 30 inFIGS. 4 and 5 . For example, the parameter may be the verticaldisplacement of the road surface as a function of position along theroad.

Distance 50 represents a portion or the entirety of road 30. Distance 51represents road segment AA and distance 52 represents distance segmentBB shown in FIG. 3 .

FIG. 6 depicts an embodiment of a vehicle including a localizationsystem that utilizes a motion sensor mounted within the vehicle body. Inthe illustrated embodiment, surface characteristics of a road surface orterrain on which a vehicle 101 travels may be collected using a motionsensor 103 mounted somewhere within or on the vehicle's body 105. Incertain embodiments, the motion sensor 103 may include, for example, oneor more IMUs, accelerometers, gyroscopes, and/or magnetometers. Invarious embodiments, the motion sensor may be configured to detectmotion (e.g., acceleration, tilt angle) along one, two, or three axes.In an exemplary use case, a digital reference map may be generated bytraversing a known section of road in a given vehicle and recording areference sequence of detected vertical motion (e.g., pitch, roll,heave) of the vehicle body 105 as a function of location along the knownsection of road. The digital reference map may be stored in memorylocated on the vehicle 105 itself, or it may be stored on the cloud(e.g., a remotely located memory that is accessible by the vehicle).When the given vehicle, or a different vehicle, subsequently traversesthe same section of road while detecting sequences of body motion, thenewly detected sequences may be compared with the reference sequencecontained in the reference map in order to locate the vehicle. Sequencesof pitch, roll and/or heave of the vehicle body 105 as detected by themotion sensor 103 may be used for localization. Alternatively oradditionally, sequences of change in pitch (e.g., sequences of pitchvelocity), change in roll (e.g., sequences of roll velocity), and/orchange in heave (e.g., sequences of have velocity) may also be used forlocalization. Alternatively or additionally sequences of pitchacceleration, roll acceleration, and/or heave acceleration may be usedto locate the vehicle.

Advantageously, a motion sensor within the vehicle body 105 can beutilized as a direct measure of pitch, roll, and/or heave of the vehiclebody without requiring substantial mathematical transformations.However, a motion sensor mounted within or on the vehicle body 105measures response of the vehicle body 105 to variations in a roadsurface, rather than measuring the variations of the road surfacedirectly. As the vehicle 105 may include one or more suspension elements107 a-b (e.g., springs, dampers, actuators, etc.) interposed betweeneach of the wheels and the vehicle body 105, motion of the body 105 maybe at least partially decoupled from road surface characteristics. Forexample, an incline in a road surface may cause a vehicle body 105 topitch upwards as the vehicle traverses the incline. A body mounted IMUmay detect the degree of the pitch of the body 105, and not the degreeof the incline of the road. While the degree of the pitch of the bodymay be related to the degree of the incline of the road, it may alsodepend on unknown or unmodeled dynamical or static uncertainties.Further, vehicle-specific factors such as suspension parameters (e.g.,spring stiffness, damping coefficients), weight of the sprung mass, etc.may significantly affect vertical motion of the vehicle body. Therefore,a reference map generated using body motion collected with one vehicletraversing a road segment may not represent a sufficiently accuratedescription of body motion expected for a second vehicle traversing thesame road segment—that is, different vehicles traversing the same roadsegment or the same vehicle travelling the same road at different speedsmay produce different body motion. Additionally, maneuvers such asbraking may introduce vertical motion into the vehicle body (e.g., bodypitch) that is unrelated to the road surface. Localization based onvehicle body motion may be influenced by vertical body motion resultingfrom vehicle maneuvers (e.g., turning, braking, forward acceleration) asopposed to vertical body motion that is due to changes in a roadsurface. Further, active suspension systems or semi-active suspensionsystems may be used to substantially alter body motion of a vehicle, andin some cases may partially or even completely decouple vertical bodymotion from certain details of surface characteristics, rendering roadsurface-based localization using data collected from sensors attached tothe sprung mass of the vehicle not sufficiently accurate.

Inventors have recognized that tracking vertical motion of one or moreof a vehicle's wheels, i.e. unsprung masses, rather than the vehiclebody, may be more reflective of the details of the road surface andbetter suited for road surface-based localization. FIG. 7 depicts anembodiment of a vehicle including a localization system that utilizeswheel motion to determine a location of the vehicle. In the embodimentof FIG. 7 , one or more motion sensors 201 a-b are arranged to directlydetect motion of a wheel of the vehicle 105. For example, a motionsensor 201 a may be mounted directly onto a wheel (e.g., a wheel hub) orwheel axle of a vehicle. In certain embodiments, each wheel of thevehicle may have a distinct motion sensor configured to detect motion ofthat specific wheel (that is, a vehicle with four wheels may have fourseparate motion sensors). In other embodiments, a single motion sensormay be arranged (for example, on the wheel axle), such that it iscapable of determining or estimating the motion of two or more wheels.In various embodiments, the motion sensors may include one or more IMUs,accelerometers, gyroscopes, and/or magnetometers, and may be configuredto detect motion in one, two, or three directions.

Unlike the body 105 of a suspended vehicle, vertical motion of avehicle's wheels is typically constrained to closely follow verticaldeflections (e.g., depressions, extrusions) of the road surface from abaseline. Even if, for example, a suspension system 107 a-b is utilizedto fully or partially decouple vertical motion of the vehicle body fromvariations in a surface being traversed by the vehicle, the verticalmotion of the vehicle's wheels may nevertheless react to the variationsin the road surface, even if the vehicle body does not. Furthermore, awheel's vertical motion may be less dependent than body motion onvehicle specific factors such as, for example, the aforementionedsuspension parameters. Therefore, in certain embodiments, surfaceinformation may be more accurately determined using one or more motionsensors attached to a wheel or wheel assembly of a vehicle. The one ormore motion sensors may be configured to sense sequences of verticalmotion (e.g., acceleration, velocity, and/or a change in verticalposition) of one or more wheels of a vehicle. In certain embodiments, avehicle may comprise a plurality of wheels and a plurality of motionsensors, such that each of the plurality of motion sensors sensesvertical motion of one of the wheels.

In certain embodiments, a motion sensor that includes an accelerometermay be used to detect, for example, a sequence of vertical accelerationsas a function of time of a wheel of a vehicle. In certain embodiments,the vertical motion data may be collected at a sampling rate of atleast, for example, 125 Hz. Since the sensed sequences of verticalmotion are in the time domain, such sequences may depend on the specificoperating conditions (e.g., operating speed) of the vehicle. In certainembodiments, it may therefore be useful to transform the collectedsequences of vertical motion from the time domain to the frequencydomain and/or the space domain (e.g., from acceleration or position withrespect to time to acceleration or position with respect to space ordistance) since sequences of vertical motion with respect to space orfrequency may be invariant or effectively invariant and indicative ofroad surface features. By eliminating the effect of operating speed ofthe vehicle, a reference map collected using a first operating speed maybe used to locate a vehicle having a second operating speed differentfrom the first operating speed.

FIG. 8 illustrates a flow chart of an exemplary process that may beutilized to localize a vehicle. In a first step 301, sequences ofvertical motion of one or more wheels as a function of time is collectedby one or more motion sensors as described herein and may be fed into acontroller. Further, the operating speed of the vehicle, denoted v(t)307, may also be detected and supplied to the controller. In certainembodiments, the operating speed of the car may be detected using one ormore of the same motion sensors that are used for detecting verticalacceleration of the wheel. In other embodiments, the speed of the carmay be detected using a different motion sensor (e.g., by using theon-board speedometer of the vehicle). In a second step 303, theoperating speed of the vehicle may be utilized to transform the verticalmotion from the time domain into the space domain. In a third step 305,the determined sequences of vertical motion in the space domain may becompared to reference sequences of vertical motion that are contained ina reference map. Various pattern matching methods known in the art maybe utilized to correlate the observed data to the reference data inorder to determine a location of the vehicle 307. In certainembodiments, particle filters may be utilized to match observed verticalvelocity, vertical acceleration and/or vertical displacement of one ormore wheels to reference sequences of vertical velocity, verticalacceleration, and/or vertical displacement contained in the referencemap. The location of the vehicle may then be communicated eitherdirectly or indirectly to other vehicle controllers (such as, e.g., anautonomous driving controller or an active suspension controller)

FIG. 9 illustrates a flow chart of an exemplary process that may beutilized to convert sequences of vertical acceleration data in the timedomain (denoted {umlaut over (x)}(t)) to sequences of verticalacceleration in the space domain (denoted {umlaut over (x)}(s)). In afirst step 401, a sequence of vertical accelerations in the time domainis collected by one or more accelerometers attached to a wheel or wheelassembly, as discussed above. In a second step 403, the accelerationsequence may be doubly integrated with respect to time to yield asequence of vertical positions of the wheel or wheel assembly withrespect to time (denoted x(t)). Optionally, a high pass filter may beapplied after each integration in order to remove noise associated withdrift of the accelerometers. In a third step 405, the detected operatingspeed of the vehicle, v(t) 407, may be utilized to convert the sequenceof vertical positions from the time domain to the space domain (denotedx(s)). In certain embodiments, the observed sequence of verticalposition in the space domain may be compared to a reference mapcontaining a sequence of reference vertical positions. However, theinventors have recognized that, in certain use cases, the accuracy ofthe localization may be improved by, in a fourth step 407,differentiating the vertical position sequence x(s) a single time inorder to obtain a sequence of vertical velocity as a function of space(denoted {dot over (x)}(s)). Alternatively, the position function may bedifferentiated twice in order to obtain a sequence of verticalacceleration as a function of space (denoted {umlaut over (x)}(s)). Incertain embodiments, the sequence of vertical velocities in the spacedomain, at {dot over (x)}(s), may then be compared to a reference mapcontaining sequences of reference vertical velocities in order to locatethe vehicle. Alternatively, in certain embodiments, the sequence ofvertical accelerations in the space domain may be compared to areference map containing sequences of reference vertical accelerationsto locate the vehicle.

In certain embodiments, it may be desirable to apply for example, a lowpass filter to the vertical motion data (e.g., the sequence of verticalacceleration, velocity, or position), so that conditions that may resultin, for example, high frequency motion of a wheel are partially or fullyignored for localization. Such conditions that may result in highfrequency motion of the wheel may include, for example, driving over apiece of debris (e.g.; a branch) in the road, driving over a pothole inthe road, etc. The inventors have recognized that these conditions maybe prone to change—for example, the piece of debris may move or beremoved from the road, the pothole may be repaired, etc.—such that incertain embodiments it may be undesirable to consider high frequencymotion for localization. Conditions that may result in lower frequencymotion of a wheel (such as, for example, driving up or down a hill) areless likely to undergo frequent changes. In certain embodiments,therefore, a low pass filter may be applied to the vertical motion datafollowing transformation to the space domain. In certain embodiments,the low pass filter at least partially attenuates motion at frequencieshigher than a first threshold, while allowing motion at frequencieslower than the first threshold to pass unattenuated or effectivelyunattenuated. In various embodiments, the first threshold may beapproximately 0.1 cycles per meter, 0.3 cycles per meter, 0.5 cycles permeter, or 1 cycle per meter. Alternatively or additionally, in certainembodiments a low pass filter may be carried out on motion data while itis still in the time domain (e.g., before transformation into the spacedomain (see FIG. 6 )). In these embodiments, the first threshold is inunits of hertz (e.g., cycles per time) and, in various embodiments, maybe 5 Hz, 1 Hz, 0.5 Hz, or 0.3 Hz.

Alternatively, instead of discarding high frequency vertical motiondata, such high frequency motion may be utilized to improve precision oraccuracy. For example, in a two lane road, the right lane may include aknown pothole while the left lane does not. If high frequency verticalmotion of one or more of the vehicle's wheels indicate that thevehicle's wheel traversed the pothole, then it may be concluded that thevehicle is travelling in the right lane. In certain embodiments,therefore, both low frequency motion data and/or high frequency motiondata may be utilized to locate the vehicle. In certain embodiments, lowfrequency vertical motion data (e.g., low-pass filtered data) may beused to first obtain an approximate location of the vehicle (e.g., toidentify a particular road or section of road in which the vehicle istravelling), and high frequency vertical motion data (e.g., high-passfiltered data) may subsequently be used to refine the approximatelocation (e.g., to identify a particular lane in which the vehicle istravelling).

In certain embodiments, the vertical motion data used for localizationmay correspond to the vertical motion (e.g., acceleration, velocity,change in vertical position) of only one wheel. In other embodiments,the vertical motion data used for localization may correspond to motionof two wheels, three wheels, four wheels, or a number of availablewheels of the vehicle. In certain embodiments, a difference in motionbetween a first set of one or more wheels of the vehicle and a secondset of one or more wheels of the vehicle may be calculated. For example,in a four-wheeled vehicle, “road pitch” is understood to describe thedifference in vertical position between the front wheels of the vehicleand the back wheels of the vehicle, while “road roll” is understood todescribe the difference in vertical position between the left wheels ofthe vehicle and the right wheels of the vehicle. It is understood thatthe terms “roll” and “pitch,” as used herein, may refer to either (a)road roll and road pitch, respectively, or (b) vehicle body roll andvehicle body pitch, respectively. In certain embodiments, verticalmotion data used for localization may include road pitch, road pitchvelocity (i.e., the rate of change of road pitch), road pitchacceleration (i.e., the rate of change of road pitch velocity), roadroll, road roll velocity, and/or road roll acceleration as a function ofspace. Particularly, inventors have found that localization based onroad pitch acceleration or velocity and/or road roll acceleration orvelocity allow for repeatable and accurate localization. Without wishingto be bound by theory, it is contemplated that the differentiation usedto convert from road pitch to road pitch velocity or acceleration and/orthe differentiation used to convert from road roll to road roll velocityor acceleration effectively serves as a high pass filter that operatesto filter out drift errors that may be exacerbated due to previousintegration steps.

FIG. 10 illustrates an exemplary method for determining road pitchvelocity or acceleration. In a first step 501 a, a set of one or moreaccelerometers may be utilized to detect sequences of verticalacceleration, in a time domain, of one or more front wheels of avehicle. In a second step 503 a, the sequence of vertical accelerationsof the front wheel(s) in the time domain may be transformed into thespace domain, to yield either vertical velocity of the front wheel(s) inthe space domain and/or vertical acceleration of the front wheels in thespace domain. Simultaneously, a second set of one or more accelerometersmay be utilized to detect sequences of vertical acceleration, in a timedomain, of one or more rear wheels of the vehicle 501 b. The sequence ofvertical accelerations of the rear wheel(s) in the time domain may betransformed into the space domain, to yield either vertical velocity ofthe rear wheel(s) in the space domain and/or vertical acceleration ofthe rear wheel(s) in the space domain 503 b. In a third step 505, thedifference in vertical velocity between the front wheels and rear wheelsin the space domain may be evaluated to identify road pitch velocity inthe time domain. Likewise, the difference in vertical accelerationbetween the front wheels and rear wheels in the space domain may beevaluated in order to identify road pitch acceleration in the timedomain. Alternatively, as shown in FIG. 11 , the road pitch accelerationand/or velocity may be determined in the time domain (e.g., byevaluating a difference between vertical acceleration of at least onefront wheel and at least one rear wheel in the time domain) in step 601,and subsequently transformed to the space domain in step 602.

As would be recognized by one of ordinary skill in the art, the rolland/or pitch (along with roll velocity, pitch velocity, rollacceleration, and pitch acceleration) experienced by the vehicle as ittraverses a typically uneven surface depends on the vehicle's wheel base(i.e., the distance between the centers of the front and rear wheels)and axle track (i.e., the difference between the centers of the rightwheels of the vehicle and the left wheels of the vehicle). For example,a reference map generated by a first car traversing a road surface at aknown location and obtaining reference pitch and/or reference roll data.However, the reference motion data may not accurately describe the pitchand/or roll motion that is experienced when a second car traverses thesame road surface, if the second car has a different wheel base and/oraxle track from the first car. Therefore, in certain embodiments, thevertical motion data (e.g., the sequence of vertical motion in the spacedomain) obtained for a given vehicle may be adjusted based on wheel baseand/or axle track of the vehicle in order to match vertical motion datacollected with a reference vehicle having a different wheel base and/oraxle track. In this way, the localization may be based, at leastpartially, on the sensed vertical motion of one or more wheels of thevehicle, the operating speed of the vehicle, and the wheel base and/oraxle track of the vehicle.

An embodiment of a vehicle localization system for carrying out theaforementioned localization method may comprise one or more localizationcontrollers having at least one input and at least one output. Incertain embodiments, one or more motion sensors attached to one or morewheels of the vehicle may be configured to sense sequences of verticalmotion of the one or more wheels, and to communicate the sequences ofvertical motion to the input(s) of the one or more localizationcontrollers. In certain embodiments, the vehicle's speedometer isconfigured to communicate the vehicle's operating speed to the input(s)of the one or more localization controllers. In certain embodiments,communication from the speedometer to the one or more localizationcontrollers may occur via the vehicle's CAN bus. The one or morelocalization controllers may carry out various transformations,filtering, pattern matching, and/or other data processing steps asdescribed in text and figures herein. In certain embodiments, thevehicle localization system may include a non-transitory computer memorythat stores one or more reference maps. The localization controller maybe capable of, or configured to, access the computer memory. The one ormore reference maps may contain reference data for a plurality ofcorresponding road segments. In certain embodiments, this reference datamay correspond to surface data (e.g., elevation of various roadsurfaces, angles of banking of various road surfaces, sloping of variousroad surfaces), and a model may be used to dynamically convert thestored surface data into reference vertical motion data that describesthe vertical motion expected for a given vehicle. In certainembodiments, the reference data may correspond to reference verticalmotion data (e.g., reference pitch, roll, and/or heave positions;reference pitch, roll and/or heave velocities; reference pitch, roll,and or heave accelerations). In certain embodiments, the referencevertical motion data may be collected by traversing the plurality ofroad segments with a reference vehicle and recording the vertical motionof one or more (e.g., one, two, or four) wheels of the referencevehicle. In certain embodiments, the computer memory may be remotelylocated and the localization system may include a wireless networkinterface through which the controller and memory are configured tocommunicate.

In certain embodiments, the localization controller may be configured todetermine a vehicle location based at least partially on (a) thedetected vertical motion data, (b) the operating speed of the vehicle,and (c) the reference data contained in the one or more reference maps.In certain embodiments, the controller may be configured to determinethe vehicle location based at least partially on the wheel base and/oraxle track of the vehicle, as described above. In certain embodiments,the localization controller may be configured to communicate the vehiclelocation to other devices (e.g., other controllers) in the vehicle, forexample via the at least one output of the controller. Suchcommunication may be wireless or wired, encrypted or unencrypted.

In addition to, or instead of, obtaining a sequence of vertical motionvia an accelerometer attached to a portion of an unsprung mass of avehicle (e.g., the wheel), such data may be obtained by one or moremotion sensors (e.g., an IMU, an accelerometer) built into a mobilecomputing device (e.g., a cell phone, a tablet, a laptop) that isremovably located within the vehicle. For example, many cell phonesfeature accelerometers and/or IMUs that are capable of detectingsequences of motion of the cell phone. In certain embodiments, themobile computing device may be removably mounted inside the vehicle, forexample, attached to a vehicle with a cell phone mount, and held in aknown orientation relative to the vehicle. In certain embodiments, themobile computing device may be programmed to detect sequences of motionof the mobile computing device, and to communicate the information to acontroller. In certain embodiments, the controller is part of the mobilecomputing device (e.g., it may be the main processor of the exemplarycell phone). In other embodiments, the controller is part of thevehicle. In yet other embodiments, the controller may be remotelylocated and communication may occur wirelessly. In certain embodiments,the controller may be configured to obtain vertical motion data byfiltering, transforming, and/or otherwise processing the detectedsequences of motion as described elsewhere in this disclosure. Incertain embodiments, reference vertical motion data may be generatedbased on recorded road characteristics (e.g., road profiles) that maybe, for example, contained in a reference map. The obtained verticalmotion data may be compared with the reference vertical motion data inorder to determine a location of the vehicle.

In certain embodiments, the vehicle localization system may include aglobal positioning system (GPS). Using methods known in the arts, theGPS may be used to identify a candidate set of road segments. However,due to limitations in accuracy and resolution, the GPS may sufficientlynarrow the actual location of the vehicle to one specific road segmentof the candidate set of road segments. In certain embodiments, anon-transitory computer memory stores a reference map that includesreference vertical motion data corresponding to each road segment of thecandidate set of road segments. In certain embodiments, at least onemotion sensor configured to sense vertical motion of one or more of thewheels of the vehicle may be used to obtain sequences of vertical motion(e.g., roll, pitch, heave, roll velocity, heave velocity, pitchvelocity, roll acceleration, heave acceleration, pitch acceleration).The obtained sequences of vertical motion may be filtered, transformed(e.g., from time to space domain), and/or processed as described hereinto obtain vertical motion data, and the obtained vertical motion datamay be compared to the reference vertical motion data that correspondsto each road segment of the candidate set of road segments. Based on thecomparison of the obtained vertical motion data and the referencevertical motion data, a specific road segment from the candidate set ofroad segments may be identified as the actual location of the vehicle.

In certain embodiments, a particle filter may be used to match observedvertical motion data of a vehicle to reference vertical motion datacontained within a reference map. In certain embodiments, a firstlocalization system (e.g., GPS) may be utilized to first determine arange of possible locations of a vehicle, and a particle filter maysubsequently be utilized to determine a precise location of the vehiclewithin the range of possible locations.

FIG. 11 illustrates an exemplary method of localizing a vehicle by useof a particle filter. A road profile 1101 associated with a given roadsection, or plurality of road sections, may be contained in a referencemap that is stored in a computer memory. This road profile 1101 may begenerated based on previous traversal of the road section either by thesame vehicle or by one or more different vehicles. In variousembodiments, the road profile 1101 may represent the vertical elevationof a road surface along the road section, or the road profile may beexpressed as vertical motion (e.g., vertical wheel velocity, verticalwheel acceleration) that is experienced by a wheel or vehicle body thattraverses the road section.

In a first step 1103, a first localization system (e.g. a GPS) of avehicle may be used to determine a range 1107 of possible locations forthe vehicle, as shown by the dotted lines 1105 a-b. For example, therange 1107 of possible locations of the vehicle may be reported as beingwithin a given radius of a certain absolute location (e.g., within a 1km radius of given latitude/longitude pair), or the range 1107 may bereported as being within a certain subsection of a road (e.g., betweenmile marker 19 and mile marker 20 on a given freeway). Based on thefirst localization system, therefore, it can be known that the vehicleis located somewhere within this range 1107 of possible locations, butthe exact location may not be obtained using only the first localizationsystem.

In a second step 1109, a controller generates a plurality of virtual“particles” 1111 that may be distributed uniformly along the range ofpossible locations. Each virtual particle may be assigned a weight,represented visually for means of explanation by the radius of eachvirtual particle. Initially, the weight assigned to each virtualparticle 1111 may be equal. An operating speed and/or direction of thevehicle may be measured, and each virtual particle may be considered astravelling along the road profile, at various starting points, atapproximately the same speed and/or direction as the vehicle. Verticalmotion data (e.g., vertical elevation, vertical velocity, or verticalacceleration) of one or more wheels of the vehicle may be collectedduring operation of the vehicle. After a given amount of time haspassed, the road profile theoretically observed by each virtual particlemay be compared to the actual vertical motion data collected duringoperation of the vehicle. In the next step 1113, the weight of eachvirtual point (as illustrated by the radius) may be modified based on acorrelation between the (theoretical) road profile observed by eachvirtual particle and the actual vertical motion data collected duringoperation of the vehicle. For example, a first virtual particle 1115that travels along a road profile that substantially correlates to theactual vertical motion data collected by the vehicle may be assigned aweight that is larger than a second virtual particle 1117 that travelsalong a road profile that diverges substantially from the actualvertical motion data collected by the vehicle. Particles with weightslower than a certain threshold may be removed (that is, such particlesmay no longer be considered a possible location of the vehicle).Particles with weights larger than a certain threshold may be dividedinto multiple virtual particles, each travelling at slightly differentspeeds or with slightly different positions. The comparison andweighting steps may be repeated a number of times such that, eventually,the weighted density of particles may be largest at a point thatrepresents the actual location of the vehicle. Therefore, by evaluatingthe weights and numbers of particles, the actual location of the vehiclewithin the initial range of possible locations may be identified.

In certain embodiments, a confidence rating may be determined thatindicates a level of confidence that the location determined by thelocalization system corresponds to an actual location of the vehicle.For example, a high confidence rating may indicate that the determinedlocation very likely describes the actual location of the vehicle withhigh accuracy, while a low confidence rating may indicate that thedetermined location less likely describes the actual location, or thatthe determined location is likely to be less accurate. Once a specificroad segment of a candidate set of road sequences is determined as beingthe location of a vehicle (e.g., using the methods described above),reference vertical motion data for the road segment immediately previousto the specific road segment may be compared with obtained verticalmotion data previously collected by the vehicle. If the previouslycollected vertical motion data also matches the reference verticalmotion data for the previous road segment, then the confidence ratingmay be increased to a higher level from the existing level. This processmay be repeated by then comparing reference vertical motion data for afurther previous road segment (e.g., two segments behind the specificroad segment) with previously collected vertical motion data, and so on.

For example, a road may comprise sequential segments labelled A, B, C,D, and E. The localization controller may determine that a vehicle iscurrently located on segment “D” using, for example, the localizationmethods described above. The localization controller would then look tothe previous road segment, “C”, and compare reference vertical motiondata associated with road segment “C” to vertical motion data previouslycollected by the vehicle. If there is a match, the localizationcontroller may then repeat the process by comparing reference verticalmotion data associated with road segment “B” to vertical motionpreviously collected by the vehicle, and so on. A confidence rating maythen be determined based on the number of sequential road segments(which may or may not be abutting segments) for which reference verticalmotion data corresponds to collected vertical motion data of thevehicle. This confidence rating may be displayed to a driver and/orpassenger in the car, for example via an indicator in the dashboard orconsole or a heads-up display (HUD). This confidence rating may becommunicated to other devices in the car. Further, the function ofvarious vehicular components (e.g., actuators in an active suspensionsystem) and/or various parameters affecting the vehicle's operation maybe varied based at least partially on the determined confidence rating.Alternatively or additionally, the localization information gathered bya vehicle may be compared to localization information collected by oneor more other vehicles. The relative positioning information determinedin this manner may be compared with relative positioning informationdetermined by other means such as, for example, radar, acoustic, andoptical ranging systems.

In certain embodiments, surface features may be intentionally added to aportion of a road surface in order to assist with localization based onvertical motion of a vehicle or a portion thereof. For example, a seriesof small bumps and/or indentations having known amplitudes may beintentionally placed on a road surface at a known location. Theseintentionally located surface features may serve as a type of fiducialmarker, providing a known fingerprint that can be detected by one ormore motion sensors of the vehicle (e.g., by an accelerometer attachedto a portion of an unsprung mass of the vehicle). As an example, suchfiducial markings (e.g., bumps, indentations) may be placed on, or builtinto, a road surface at a known location. The known location may beinside a tunnel, an underground parking lot, or at another locationwhere GPS is similarly prone to failure. When one or more wheels of avehicle undergo a sequence of vertical motions that can be attributed tothe fiducial markings, the vehicle's location may be preciselydetermined as correlating to the known location of the fiducialmarkings. In certain embodiments, the fiducial markings may besufficiently small such that they are imperceptible or effectivelyimperceptible to a driver and/or passenger located within the vehiclewhen the vehicle traverses the markings. In certain embodiments, thefiducial markings may be part of a surface of a manhole cover.

Further, the inventors have recognized that one or more motion sensorsconfigured to detect vertical motion of a vehicle and/or vehiclecomponent (e.g., a wheel of the vehicle) may be additionally oralternatively utilized to identify and diagnose the emergence of defectsin a road surface. Road surfaces may, over time, develop defects. Typesof defects include cracks, potholes, corrugations, swelling, etc. For anorganization responsible for maintaining road surfaces, such as amunicipality, it may be important to identify surface defects beforesuch defects are sufficiently large enough to cause damage to a vehicleutilizing the road surface.

In light of the above, the inventors have recognized the benefit of anautomated system for detecting surface defects. In certain embodiments,one or more motion sensors (e.g., accelerometers) attached to a vehicle(e.g., to a portion of an unsprung mass of the vehicle) may be used toidentify, measure, and/or track the growth of a defect on a roadsurface. In certain embodiments, a vehicle may include one or more(e.g., at least one, at least two, at least three, at least four) motionsensors (e.g., accelerometers), wherein each motion sensor is configuredto sense vertical motion of a portion of the unsprung mass of thevehicle. In certain embodiments, each motion sensor may be attached to awheel or wheel assembly of the vehicle. In certain embodiments, themotion sensor may be configured to detect a sequence of vertical motionsof a portion of the vehicle as it traverses a road surface. In certainembodiments, the detected sequence may be communicated (e.g., via acommunication interface) to a suspension controller. In certainembodiments, a dimension (e.g., a depth of a crack or pothole, a widthof a crack, etc.) of a surface defect traversed by the vehicle may bedetermined based at least partially on the detected sequence of verticalmotions, a weight of the unsprung mass or a portion thereof, anoperating speed of the vehicle, or any permutation or combinationthereof.

In certain embodiments, the determined dimension of the surface defectmay be compared with a previously determined dimension of the samesurface defect in order to measure a rate of change of the dimension ofthe defect. In certain embodiments, upon determination that (a) thedimension of the surface defect exceeds a threshold value and/or (b) therate of change of the dimension of the surface defect exceeds a certainvalue (e.g. indicating that the defect is growing), a location of thesurface defect may be flagged, communicated to other vehicles (such thatother vehicles may, for example, avoid the defect by rerouting) and/orcommunicated to an organization charged with maintaining the roadsurface.

In certain embodiments, a non-transitory computer memory may store a mapincluding road segments along with corresponding vertical motion datarepresenting sequences of vertical motions experienced by one or more(e.g., one, a plurality of) vehicles traversing each road segment. Incertain embodiments, a reference sequence of vertical motion may beobtained by recording vertical motion of a portion (e.g., a body, awheel, a plurality of wheels) of a reference vehicle traversing a knowndefect of a known type and/or known size. In certain embodiments, asurface defect located on a specific road segment contained in the mapmay be identified and/or classified (e.g., by type and/or by size) bycomparing the vertical motion data stored in the map to the referencesequence of vertical motion.

In certain embodiments, a vehicle may include at least one backwardslooking sensor (e.g., a backwards and/or downwards looking camera) thatis capable of obtaining images of a portion of a road surface after orduring when the vehicle traverses the portion of the road surface. Incertain embodiments, in response to vertical motion of the vehicle or aportion thereof exceeding a threshold acceleration and/or thresholdvelocity, the backwards looking camera may obtain and store an imageand/or video of the corresponding road surface that resulted in thevertical motion (e.g., the vertical motion may trigger, after anoptional delay, a capture of the image and/or video by the backwardslooking sensor). The stored image and/or video may be stored innon-transitory computer memory. The stored image and/or video may beused, for example, to classify or confirm a type and/or size of a defector object responsible for the vertical motion. For example, in caseswhen damage occurs due to the vertical motion of the vehicle or theportion thereof (e.g., driving through a pothole large enough to damagea wheel hub), the stored image and/or video may also be useful forinsurance claims and/or related legal proceedings.

In certain embodiments, a vehicle may include one or more forwardlooking sensors (e.g., a forward looking camera, a LIDAR sensor) capableof detecting characteristics of a portion of a road surface before thevehicle encounters the portion of the road surface. These sensors maybecome misaligned or miscalibrated due to, for example, collisions,weather, or other events. In certain embodiments, calibration of one ormore forward looking sensors may be checked and/or corrected bycomparing vertical motion experienced by a vehicle or a portion thereofwith data collected from the one or more forward looking sensors. Forexample, the forward looking sensor may be used to identify and predictthe size of an obstacle (e.g., a depression (e.g., a pothole), anextrusion (e.g., a bump, an object)) in a road surface ahead of thevehicle. Based on the type and/or size of the obstacle, a predictedresponse of the vehicle or the portion thereof may be determined (e.g.,by a controller). The predicted response may represent predictedvertical motion (e.g., vertical displacement, velocity, acceleration) ofthe vehicle or the portion thereof. In certain embodiments, the actualresponse experienced by the vehicle when it traverses the obstacle maybe observed and compared with the predicted response. In certainembodiments, the actual response may correspond to vertical motionexperienced by the vehicle or the portion thereof (e.g., as measured byone or more motion sensors). In certain embodiments, if the actualresponse is substantially different from the predicted response, it maybe determined that the forward looking sensor is, for example,miscalibrated and/or misaligned. In certain embodiments, upondetermination that the forward looking sensor is miscalibrated and/ormisaligned, a visual indicator may be activated to alert a vehicleoperator and/or passenger. In certain embodiments, the forward lookingsensor may be re-aligned, and the process may be repeated until thepredicted response is substantially similar to the actual response.

In another aspect, a vehicle is disclosed that comprises a plurality oflocalization systems, each of which is capable of determining a locationof the vehicle. For example, a vehicle may include any of the followinglocalization systems: GPS, terrain-based localization (as describedherein), LIDAR-based localization, road surface penetrating radarlocalization, visual landmark-based localization, WiFi source mapping,etc. In general, these localization systems may operate by collectingsamples, and comparing the collected samples to reference data taken atknown locations. The rate at which data is collected is known as a“sampling rate.” For example, a landmark based localization system thatuses a camera to obtain two images each second for comparison withreference images may be said to have a sampling rate of 2 samples persecond (or 2 Hz).

In certain embodiments, a vehicle may comprise a first localizationsystem and a second localization system. The first localization systemmay have a first sampling rate and first resolution and the secondlocalization system may have a second sampling rate and secondresolution, where the sampling rates and/or resolutions of twolocalization systems may be different. In certain embodiments, thesecond sampling rate may be higher than the first sampling rate (e.g.,the second localization system may be configured to collect more samplesin a given time period than the first localization system). In certainembodiments, the first resolution may be higher than the secondresolution. The inventors have recognized that, under a first set ofdriving conditions, the first localization system may be capable of moreaccurate localization than the second localization system while, under asecond set of driving conditions, the second localization system may becapable of more accurate localization than the first localizationsystem. For example, sufficiently low operating speeds of a vehicle mayfavor the first localization system having the first resolution andfirst sampling rate. However, as operating speed of the vehicleincreases, accuracy of the first localization system may decrease due toits sampling rate, and the second localization system may become moreaccurate.

In light of the above, in certain embodiments the vehicle includes alocalization controller configured to communicate with the firstlocalization system and the second localization system. In certainembodiments, the localization controller may receive a first locationfrom the first localization system and a second location from the secondlocalization system, and may determine the vehicle's location based onthe first and/or second location. In certain embodiments, thelocalization controller may determine the vehicle's location based on aweighted average of the first location and second location, whereby afirst weight and second weight are assigned to the first location andthe second location, respectively. For example, a first weight of 1 forthe first location and a second weight of 0 for the second location mayindicate that only the first location is considered, and the secondlocation discarded; a first weight of 0.5 for the first location and asecond weight of 0.5 for the second location may indicate that the firstlocation and second location are considered equally; a first weight of0.33 for the first location and a second weight of 0.66 for the secondlocation may indicate that the second location is given twice as muchweighting as the first location. In certain embodiments, the controllermay determine the first weight and second weight based on an operatingcondition (e.g., speed) of the vehicle.

For example, when the vehicle is operated at a speed equal or greaterthan a threshold speed, the controller may assign a second weight to thesecond determination that is larger than the first weight assigned tothe first determination; when the vehicle is operated at a speed lessthan the threshold speed, the controller may assign a second weight tothe second location that is less than the first weight assigned to thefirst location. In some embodiments, the first weight and second weightmay be determined based on weather conditions. In conditions with goodvisibility (e.g., day time, clear day, no rain or snow), for example,the first location may be assigned a higher weight than the secondlocation, while under conditions with poor visibility (e.g., night-time,snow or rain, clouds), the second location may be assigned a higherweight than the first location. In some embodiments, the first weightand second weight may be determined based on characteristics of thelocation surrounding the vehicle or the ground surface across which thevehicle traverses. For example, for urban driving (e.g. paved roads,tall buildings), the first location may be assigned a higher weight thanthe second location, while for sub-urban or rural driving (e.g., unpavedroads, sparse buildings) the second weight may be assigned a higherweight than the first location.

In various embodiments, the first localization system may include aLIDAR localization system, landmark-based localization system, a WiFisource mapping system, GPS, vertical motion localization system (asdescribed herein), ground-penetrating radar localization system, or anyother localization system as known in the art. In various embodiments,the second localization system may include LIDAR localization system,landmark-based localization system, a WiFi source mapping localizationsystem, GPS, vertical motion localization system (as described herein),ground-penetrating radar localization system, or any other localizationsystem as known in the art.

In certain embodiments, more than two localization systems may beutilized and dynamically weighted based on an operating parameter and/orenvironmental parameter, as described above. In certain embodiments, avehicle may comprise a plurality of localization systems, each of whichis configured to determine a location of the vehicle. Based at least inpart on an operating parameter (e.g., operating speed) and/orenvironmental parameter (e.g., light conditions, visibility, weather,etc.), each location as determined by each respective localizationsystem of the plurality may be dynamically assigned a weight. Based onthe assigned weights and the respective locations (e.g., by taking aweighted average), a specific location of the vehicle may be determined.In certain embodiments, for certain operating parameters and/orenvironmental parameters, the weight assigned to one or more of theplurality of localization systems may be zero (indicating that thelocation(s) determined by the one or more localization systems is notconsidered). In certain embodiments, for certain operating parametersand/or environmental parameters, at least one of the plurality oflocalization systems may be disabled.

In certain embodiments, a first vehicle may comprise a firstlocalization system. The first localization system may be configured todetermine a first location of the first vehicle, and may, for example,be any of the previously mentioned localization systems. The firstlocation may be communicated from the first vehicle to a second vehicle.For example, the first vehicle may comprise a first communicationsinterface (e.g., a first wireless transmitter) configured to exchangedata with a second communications interface (e.g., a second wirelesstransmitter) that is located in the second vehicle. The second vehiclemay also include a sensor that is configured to determine a relativedistance between, or relative position of, the second vehicle withrespect to the first vehicle. For example, the first vehicle maygenerate a set of one or more signals (e.g., a magnetic signal, anacoustic signal, a radio frequency signal, a light signal etc.), and thesecond vehicle may have a set of one or more sensors (e.g., magneticfield sensor, audio sensor, an RF receiver, light detector) capable ofreceiving at least one signal of the set of signals. Based on, forexample, the amplitude of each signal as received by the second vehiclecompared to the amplitude of each signal as transmitted by the firstvehicle, a relative distance between, or relative position of, the firstvehicle with respect to the second vehicle may be determined. Using thefirst location of the first vehicle and the relative distance orrelative position of the second vehicle with respect to the firstvehicle, a second location of the second vehicle may be determined.

In another aspect, a vehicle may include an active suspension system ora semi-active suspension system that controls a suspension system of thevehicle based at least in part on the location of the vehicle (e.g., asdetermined by a localization system). An “active” suspension systemrefers to vehicular suspension systems in which one or more actuatorsare interposed between the unsprung mass of a vehicle, which generallyincludes the vehicle's wheels and wheel assembly, and the sprung mass ofthe vehicle, which generally includes the vehicle's body. Activesuspension systems utilizing electrohydraulic actuators, for example,are described in U.S. patent application Ser. No. 14/602,463 filed Jan.22, 2015, which is herein incorporated by reference in its entirety.

One advantage of an active suspension system, when compared to a passivesuspension system, is that the one or more actuators of the activesuspension system may be used to at least partially decouple verticalmotion of the vehicle's wheels from vertical motion of the vehicle body.For example, in a passive suspension system, when a vehicle's wheeltraverses a pothole, the wheel may move downward into the pothole,thereby resulting in downward motion (e.g., downward acceleration) ofthe vehicle body. This downward acceleration of the vehicle body may befelt by the driver and/or passengers present within the vehicle body,possibly contributing to a loss in ride comfort and satisfaction. In anactive suspension system, on the other hand, when a vehicle's wheeltraverses a pothole, the one or more actuators may be used to increasethe separation distance of the vehicle body, such that vertical positionof the vehicle body remains constant, substantially constant, oreffectively constant. In other words, as the wheel moves downwards totraverse the pothole, the vehicle body may be raised relative to thewheel, such that the vehicle body retains a constant or substantiallyconstant vertical position. Likewise, when a vehicle's wheel traverses abump, the one or more actuators of an active suspension system may beused to lower the vehicle body relative to the wheels such that, despiteupwards motion of the wheel, the vertical position of the vehicle bodymay remain constant, substantially constant, or effectively constant. Asa result, an active suspension system may offer drivers and/orpassengers the potential for a more comfortable ride.

Due to inherent size and packaging limitations, the amount that avehicle body may be lowered or raised relative to the vehicle's wheelsby the active suspension system may be limited by a stroke length of theone or more actuators of the active suspension system. As illustrated inFIG. 12 , the sprung mass 701 of the vehicle, which includes a vehiclebody, may be supported by the spring 703. FIG. 12 shows the actuator 707at its nominal length (length “L”) which occurs when the vehicle is on ahorizontal road surface and is not accelerating. In order to raise thesprung mass 701 relative to the unsprung mass 705 (e.g., to raise thevehicle body relative to the wheel), the actuator 707 may apply anactive upwards force (i.e. a force in the direction of motion) on thesprung mass 701 thereby raising the sprung mass 701 relative to theunsprung mass 705 (i.e., thereby increasing the vertical separationdistance between the sprung mass and the unsprung mass).

As shown in FIG. 13 , when the sprung mass sufficiently raised relativeto the unsprung mass, the actuator reaches a maximum length (denoted“L_(max)”) which defines a maximum separation distance between thesprung mass and unsprung mass (i.e., a maximum height of the sprung massrelative to the unsprung mass). Once the actuator reaches its maximumlength, the vehicle body (which is part of the sprung mass), may not befurther raised relative to the wheel (which is part of the unsprungmass). In exemplary electrohydraulic actuators, the maximum length mayoccur when the actuator housing 730 physically contacts an extensionend-stop 732 (also referred to as a bump-stop) that is attached to thepiston rod, such that the extension end-stop precludes further extensionof the actuator. For this reason, an actuator reaching its maximumlength may be referred to as an “end-stop event.”

Alternatively, in order to lower the vehicle body relative to the wheel(i.e., to decrease the separation distance between the vehicle body andwheel), the actuator may apply a downward active force on the sprungmass. As shown in FIG. 14 , when the sprung mass is sufficiently loweredrelative to the unsprung mass, the actuator may reach a minimum length(denoted “L_(min)”). Once the actuator reaches its minimum length, thevehicle body may not be lowered further relative to the wheel. Inelectrohydraulic actuators, the minimum length may occur when theactuator housing 730 contacts a compression end-stop 740 (alternativelyreferred to as a bump-stop) so that the actuator may not be compressedany further. For this reason, an actuator reaching its minimum lengthmay also be referred to as an “end-stop event.” End-stop events may beencountered in a passive suspension system, a semi-active suspensionsystems, or in an active suspension system, as well.

At any given time, excluding during an end-stop event, an activesuspension system actuator has a current length that falls in the rangebetween its minimum length and its maximum length. The availableextension at a given time refers to the difference in the maximum lengthminus the current length of the actuator at the given time. The currentlength of an actuator at any given time may be equal to the neutrallength of the actuator (i.e., the length of the actuator when it appliesno active force), or the current length of an actuator at any given timemay be different from the neutral length (e.g., such as when theactuator is applying an active force to raise and/or lower the sprungmass). The available compression at a given time refers to thedifference in the current length at the given time minus the minimumlength. For example, if the current length of an actuator at a giventime is 12 inches, and the maximum length of the actuator is 18 inches,then the available extension at the given time is 6 inches (indicatingthat the sprung mass may be raised, with respect to the unsprung mass,by a maximum of 6 inches relative to its current position). Likewise, ifthe current length of an actuator at a given time is 12 inches, and theminimum length of the actuator is 4 inches, then the availablecompression at the given time is 8 inches (indicating that the sprungmass may be lowered, with respect to the unsprung mass, by a maximum of8 inches relative to its current position).

As discussed previously, when a vehicle traverses an obstacle, an activesuspension system may be used to decouple vertical motion of the vehiclebody from vertical motion of the vehicle's wheels by, for example,raising the vehicle body relative to a wheel when the vehicle traversesa pothole and lowering the vehicle body relative to one or more wheelswhen the vehicle traverses a bump. However, if a dimension of theobstacle (e.g., a height of a bump, or a depth of a pothole) exceeds theavailable extension (for an extrusion such as a bump) or availablecompression (for a pothole), then it may not be possible to retain aconstant vertical position of the vehicle body. For example, if anactuator at a given time has an available compression of 6 inches, andthe vehicle travels over a bump that has a height of 10 inches, theactuator may compress until it reaches its minimum length (e.g., untilan end-stop event occurs). Once the actuator reaches its minimum length,it is no longer possible to further lower the vehicle body relative tothe wheel, and further vertical motion of the wheel necessarily resultsin some vertical motion of the vehicle body. Likewise, if an actuator ata given time has an available extension of 6 inches, and the vehicletravels over a pothole that has a depth of 10 inches, the actuator mayextend until it reaches its maximum length (e.g., until an end-stopevent occurs). Once the actuator reaches its maximum length, it is nolonger possible to further raise the vehicle body relative to the wheel,and further vertical motion of the wheel necessarily results in somevertical motion of the vehicle body.

In light of the above, the inventors have recognized that, in order toprepare for traversal of an obstacle that is sufficiently large to causean end-stop event, it may be advantageous to dynamically adjust thecurrent length of an actuator in anticipation of the vehicleencountering the obstacle (e.g., the length of an active-suspensionactuator may be adjusted prior to the associated wheel of the vehicleencountering the obstacle), thereby a priori increasing either theavailable extension or available compression of the actuator before thevehicle encounters the obstacle. For example, the current length of anactuator at a given time may be 12 inches and the maximum length of theactuator may be 18 inches. If the vehicle traverses a pothole having adepth of 7 inches, an end-stop event may occur as described above sincethe depth of the pothole exceeds the available extension of theactuator. Such an end-stop event may be avoided if, before encounteringthe pothole, at least the actuator associated with the wheel that willenter the pothole is compressed to increase the available extension ofthe actuator (e.g., such that the available extension exceeds the depthof the pothole at the time of encounter). For example, prior toencountering the pothole, the actuator may be compressed to a currentlength of 10 inches, such that the available extension of the actuatorbecomes 8 inches (exceeding the depth of the pothole). Likewise, whenanticipating an event such as an extrusion, that may result incompression of the actuator (e.g., a bump or other object extending froma surface) sufficient to cause an end-stop event, the actuator may beextended prior to the vehicle encountering the extrusion, such that theavailable compression of the actuator is increased (e.g., such that theavailable compression exceeds the height of the bump at the time ofencounter). “Encountering” an obstacle refers to the time at which anyof the vehicle's wheels come into physical contact with a portion of anobstacle. The specific actuator lengths mentioned above are exemplaryand not intended to limit the disclosure.

Adjusting the current length of an actuator of a vehicle's activesuspension system prior to the vehicle encountering an obstacle therebyimparts vertical motion into the vehicle body, which may be felt by thevehicle's driver and/or passengers. The current length of the actuatormay be changed gradually, over some period of time prior to encounteringthe obstacle, such that instantaneous acceleration or velocity ofvertical motion of the vehicle body remains at levels substantially lessthan if the vehicle were to undergo an end-stop event upon traversal ofthe obstacle. That is, instead of a driver and/or passenger of thevehicle perceiving the obstacle as a sudden, severe occurrence which mayinclude an end-stop event, the vertical motion of the vehicle body maybe distributed over a longer period of time (or distance) such thatdriver and/or passenger may perceive a more gradual, less severeoccurrence. FIG. 15 illustrates a vehicle 800 approaching discontinuity801 (e.g. a bump) in the road 802. In certain embodiments, a length ofone or more actuators (for example those located in the front of thevehicle) may be adjusted at, for example, a first point 803 a, beforeone or both front wheels arrive at the discontinuity at point 803 b. Thelength of one or more actuators located in the rear of the vehicle maybe adjusted at a second subsequent point in time (not shown). Theactuators may be controlled to gradually return to their nominal length“L” at point 803 c rather immediately after the end of the discontinuityat point 803 d. This may provide an occupant of the vehicle with aperception that the vehicle body is gradually ascending or descending.This gradual process may begin a before the front and or the rear wheelsencounter the obstacle.

In certain embodiments, a first vehicle may include one or more sensorsthat detect when one or more actuators of an active suspension system ofthe first vehicle experience an end-stop event at a first time. Alocation of the end-stop event, as well as the type of end-stop event(e.g., whether the actuator reaches maximum length or minimum length)may be recorded and stored in a non-transitory computer memory. Incertain embodiments, one or more sensors may be utilized to detect andrecord a location and type of a near end-stop event. A near end-stopevent is understood to refer to an event that causes a length of anactuator of an active suspension system to reach a value not less than afirst threshold of its maximum length or not greater than a secondthreshold of its minimum length. In certain embodiments, the firstthreshold may be 60%, 75%, 80%, 85%, 90%, or 95%. In certainembodiments, the second threshold may be 130%, 120%, 115%, 110%, or105%.

When a second vehicle subsequently approaches the recorded location ofthe end-stop event or near end-stop event, a current length of one ormore actuators of an active suspension system of the second vehicle maybe adjusted (e.g., the length of the one or more actuators may beincreased or decreased, thereby raising or lowering the height of thesecond vehicle's body relative to the second vehicle's wheels inanticipation of an end stop event) prior to the second vehicle reachingthe recorded location. In certain embodiments, the length of the one ormore actuators may be adjusted such that, upon subsequent traversal ofthe recorded location by the second vehicle, an end-stop event or nearend stop-event may be avoided. In certain embodiments, the secondvehicle may be the same as the first vehicle. In certain embodiments,the second vehicle may be different from the first vehicle.

In certain embodiments, the computer memory may store a plurality ofrecorded locations at which previous end-stop events were detected, aswell as a type for each end-stop event. In certain embodiments, thecomputer memory storing recorded locations of end-stop events may alsobe accessible to a plurality of vehicles. In certain embodiments, therecorded location of an end-stop event experienced by one vehicle may becommunicated to other vehicles directly. In certain embodiments, thecomputer memory may store a first location of an end-stop eventexperienced by a first vehicle and a second location of an end-stopevent experienced by a second vehicle, different from the first vehicle.This way, if one car experiences an end-stop event, then a differentvehicle travelling over the same location or obstacle may be able toprepare for the event prior to reaching the location or encountering theobstacle. In certain embodiments, the computer memory may be locatedremotely. In certain embodiments, the first and/or second vehicle mayinclude a network interface that allows the first and/or second vehicleto wirelessly communicate with the remotely located computer memory.Note that in certain embodiments, if the first and second vehicle aredifferent, the maximum length of the actuator of the second vehiclecompared to the maximum length of the actuator of the first vehicle maybe considered. Likewise, the minimum length of the actuator of thesecond vehicle compared to the minimum length of the actuator of thefirst vehicle may also be considered.

In certain embodiments, a vehicle may include at least one forwardlooking sensor, such as for example, a LIDAR sensor, SONAR sensor, RADARsensor, or visual camera. The at least one forward looking sensor maydetect the presence and characteristics of an obstacle (e.g., a bump, apothole, a foreign object on the road surface) before the obstacle isencountered by the vehicle. The at least one forward looking sensor maycommunicate with a suspension controller. The suspension controller mayuse data received from the at least one forward looking sensor todetermine, measure, or predict a dimension (e.g., a height, a depth) ofthe obstacle.

Alternatively or additionally, the suspension controller may have accessto a non-transitory computer memory storing a three-dimensional map thatincludes surface data (e.g., locations and dimensions of bumps,potholes, elevation changes in road surface, etc.). In certainembodiments, based on a current location of a vehicle and a direction oftravel of the vehicle, the suspension controller, or another controllerin communication with the suspension controller, may determine, byevaluating the surface data from the three-dimensional map, that thevehicle is likely to traverse an object (e.g., a depression, anextrusion) having a dimension (e.g., a depth, a height) sufficient tocause an end-stop event or a near end-stop event. Alternatively oradditionally, the vehicle may include an interface for receiving adestination from a user, and may plan a route from a starting locationor current location to the destination point. In certain embodiments,the vehicle may evaluate the three dimensional map to identify an object(e.g., a depression or extrusion in the road surface) that is located onthe planned route and that has a dimension (e.g., a depth, a height)that may cause an end-stop event or a near end-stop event.

By comparing a measured, predicted or prerecorded dimension of anobstacle to the available compression or available extension at a giventime, the suspension controller may determine whether traversing theobstacle is likely to cause an end-stop event or a near end-stop event.If the suspension controller determines that an end-stop or nearend-stop event is likely (e.g., if the controller determines that theavailable compression or available extension at the given time is lessthan the dimension of the obstacle), then the suspension controller mayadjust the length of one or more actuators of an active suspensionsystem of the vehicle in order to increase the available compression oravailable extension such that, after being adjusted, the availablecompression or available extension is not less than the determined orpredicted dimension of the obstacle.

In certain applications, a vehicle may traverse an obstacle (e.g., asurface depression, an extrusion) during a turn or other maneuver. Whilea vehicle is conducting a turn, the length of an actuator of an activesuspension system of the vehicle may be varied, for example, due to rolleffects or compensation thereof. In certain embodiments, one or morecontrollers may predict (a) a time point at which the vehicle isexpected to encounter the obstacle; and (b) an expected length of theactuator at the time point (e.g., by accounting for roll effects thatmay be caused by turning or other maneuvers). The controller may thenadjust the current length of the actuator a priori such that theavailable extension or available compression of the actuator at the timepoint at which the vehicle is expected to encounter the obstacle is notless than a depth of the surface depression (e.g., pothole) or not lessthan a height of the extrusion (e.g., a bump), respectively.

In certain embodiments, an actuator may utilize end-stop control inorder to preclude the occurrence of end-stop events. For example, anactuator may be configured such that, once the actuator reaches a lengthno less than a first threshold of its maximum length, a first force isapplied to a piston of the actuator in order to inhibit or prevent theactuator from reaching its maximum length. Additionally oralternatively, in certain embodiments, an actuator may be configuredsuch that, once the actuator reaches a length less than a secondthreshold of its minimum length, a second force is applied to the pistonof the actuator in order to inhibit or prevent the actuator fromreaching its minimum length. In certain embodiments, the first thresholdmay be 60%, 75%, 80%, 85%, 90%, or 95%. In certain embodiments, thesecond threshold may be 130%, 120%, 115%, 110%, or 105%. Variousparameters of end-stop control include, for example, piston positions oractuator length thresholds at which the first force and/or second forceare applied; and a relationship of a magnitude of the first force and/orsecond force as a function of the length of the actuator or position ofthe piston.

While such end-stop inhibition may preclude the occurrence physicaldamage, it also may decrease the effective available compression and/oravailable extension of the actuator. If a dimension of an obstacle isknown before being encountered by a vehicle, then it may be possible toimplement an active suspension system response strategy (e.g.pre-compressing or pre-extending an actuator) so that the object may betraversed by the vehicle without an end-stop event. The parameters ofend-stop prevention control may be adjusted based on a comparison of theactual response relative to a predicted response.

For example, as discussed previously, when a vehicle having a hydraulicactuator traverses an extrusion (e.g., a bump) in a road surface, theactuator may be pre-compressed in length. If a height of a bump ahead ofthe vehicle is known, then—in combination with various vehicleparameters (optionally including stiffness of one or more suspensioncomponents (e.g., air-springs), damping coefficient of one or moresuspension damping coefficients, operating speed of the vehicle)—anamount of expected compression resulting from traversal of the bump canbe predicted. If the expected compression is less than the availablecompression (such that an end-stop event is not possible or is notlikely to occur), then end-stop prevention control may be disabled, suchthat no inhibiting force is actively applied. If the expectedcompression is effectively the same as, or greater than, the availablecompression (such that an end-stop event is possible or even likely),then end-stop control having appropriate parameters may be implemented.

“Vertical motion” as used herein refers to motion (e.g., motion of acorner of a car body, motion of a wheel of a car) in a direction normalto or effectively normal to a portion of the ground surface that is incontact with the wheel of the vehicle. Vertical motion may include, forexample, vertical velocity, vertical acceleration, or verticaldisplacement of an object. “Vertical motion data” as used herein refersto data that represents, or is derived from, a sequence of verticalmotions of an object or set of connected objects. Vertical motion datamay include, for example, data representing sequences of heave, pitch,roll, heave velocity, pitch velocity, roll velocity, heave acceleration,pitch acceleration, or roll acceleration as a function of time or space.“Motion sensor” as used herein refers to any sensor or set of sensorsconfigured to sense an object's acceleration or a measure from which anobject's acceleration may be derived, an object's velocity or a measurefrom which an object's velocity may be derived, and/or a change inposition of an object or a measure from which an object's change inposition may be derived. “Operating velocity” or “operating speed”refers to the speed or velocity at which a vehicle traverses a groundsurface. “Controller” refers to electronic circuitry comprising aprocessor, at least one input for receiving an input signal, and atleast one output for transmitting an output signal, wherein the outputsignal is determined based, at least in part, on the input signal.

What is claimed is:
 1. A method of operating a vehicle, comprising: whenthe vehicle is at a first location along a road, determining a firstapproximation of the first location of the vehicle with a firstlocalization system; providing the first approximation of the firstlocation of the vehicle to a remote data storage facility; based on thefirst approximation of the first location, receiving, from the remotedata storage facility, a reference profile of a portion of the road;while traveling in the vehicle, along the road, to the first location,measuring, with a sensor, a parameter associated with a vertical motionof at least one wheel of the vehicle; generating a first workingprofile, based at least partially on the measurements; comparing thefirst working profile with the reference profile; determining a secondapproximation of the first location of the vehicle based on thecomparison; traveling along the road to a second location; whiletraveling to the second location, collecting new information with thesensor about the parameter associated with the vertical motion of the atleast one wheel of the vehicle; updating the first working profile basedon the new information; and determining an approximation of the secondlocation based on a comparison of the updated first working profile andthe reference profile.
 2. The method of claim 1 further comprising:based at least partially on information about the second location,receiving data, at a controller on-board the vehicle, associated with asurface of a portion of the road ahead of the vehicle; and using thedata to operate vehicle system.
 3. The method of claim 2, wherein thefirst localization system includes a global positioning system.
 4. Themethod of claim 2, wherein the reference profile includes time domaindata.
 5. The method of claim 2, wherein the at least one vehicle systemis selected from the group consisting of an active suspension system, asemi-active suspension system, a braking system, and a steering system.6. The method of claim 2, wherein the reference profile includes dataselected from the group consisting of acceleration of an unsprung mass,pitch angle of a vehicle, pitch rate of a vehicle, and pitchacceleration of a vehicle.
 7. The method of claim 2, wherein thereference profile includes space domain data.
 8. The method of claim 7,wherein the reference profile includes time domain data.
 9. The methodof claim 2, wherein the reference profile includes data collected from asecond vehicle using at least one sensor operatively attached to anunsprung mass of the second vehicle.
 10. The method of claim 9, whereinthe at least one sensor includes an accelerometer.
 11. A method ofoperating a vehicle system based on a location of a vehicle along aroad, the method comprising: traveling along the road with the vehicle;while traveling along the road in the vehicle, measuring a parameterrelated to a vertical motion of at least one wheel of the vehicle with asensor; based at least partially on the measurements, generating aworking profile of at least a portion of the road; from a remote datastorage facility, receiving a previously stored reference profile forthe road; determining a first location of the vehicle based on a degreeof similarity between of the working profile and the previously storedreference profile; updating the working profile as the vehicle travelsto a new location along the road; and determining a second location ofthe vehicle, based on a degree of similarity between the updated workingprofile and the previously stored reference profile.
 12. The method ofclaim 11 further comprising: receiving data at a controller, on-boardthe vehicle, about the road ahead of the vehicle based at leastpartially on information about the second location; and using the datato operate the vehicle system.
 13. The method of claim 12, wherein thepreviously stored reference profile includes time domain data.
 14. Themethod of claim 12, wherein the vehicle system is selected from thegroup consisting of an active suspension system, a semi-activesuspension system, a braking system, and a steering system.
 15. Themethod of claim 12, wherein the previously stored reference profileincludes data selected from the group consisting of acceleration of anunsprung mass, pitch angle of a vehicle, pitch rate of a vehicle, andpitch acceleration of a vehicle.
 16. The method of claim 12, wherein thepreviously stored reference profile includes space domain data.
 17. Themethod of claim 16, wherein the previously stored reference profileincludes time domain data.
 18. The method of claim 12, wherein thepreviously stored reference profile includes data collected from asecond vehicle using at least one sensor operatively attached to anunsprung mass of the second vehicle.
 19. The method of claim 18, whereinthe at least one sensor includes an accelerometer.